With the increase in the popularity of the “World Wide Web” (WWW), the use of web browsers or browsers has become more common. For example, a web browser available from Netscape, Inc., known as Netscape Navigator®, can provide a convenient way to operate applications and view data via the web. Some of the applications available via the web can provide a high level of interaction with the user as these applications may be written in native languages such as C or Java®. In particular, applications written in these types of native languages can be specifically written to require intensive user interaction. As the level of interaction between the user and the application increases, so can the communication between the web browser and the application. This increase in communication can decrease the available network bandwidth resulting in response time delay of the application as perceived by the user. For example, each time the user requests data which is managed by the application, the user typically has to wait for a request to be sent over the web to the application, for the application to retrieve the requested data, and for the application to reply with the requested data.
In addition to the problems outlined above regarding generic applications, a new type of environment, commonly referred to as the “emerging web desktop,” may cause even greater problems similar to those discussed above. In particular, the emerging web desktop can provide users with access to what is commonly referred to as a portal. The portal can allow a user to access multiple applications through a single screen displayed by the web browser. For example, some portals allow users to access applications that can show disparate data, such as weather, sports, stock information, or the like, to a user on a single screen. Each of the disparate types of data is typically controlled by a portlet. A portlet is computer code which adheres to interfaces and behaviors specified in a portlet specification and executes in a portal application server. Examples of a portlet specification include IBM's portlet API and Java™ Standardization Request for the Java Portlet Specification defined by the Java Community Process.
Much of the processing needed to manage the portal such as administration, customization, and switching can place even greater demands on the bandwidth available between the browser and the application. Such increased demands on the bandwidth available may also translate in a decrease in the application's response time from the perspective of the user.
Among their other failings, conventional approaches including web browsers offer limited optimization opportunities because of the granularity of information currently cached. For example, one conventional approach can only cache uniform resource locator (URLs) which refer to an entire hypertext markup language (HTML) page or cache the entire HTML page itself on a client, where the entire HTML page typically consumes the entire presentation area of the browser. Other conventional approaches include server side caching which do not address response time delays between a client and a server.
It is known to use a technology commonly referred to as XForms to address some of the performance issues that arise when using a web browser to access data over the web. In particular, XForms technology can treat the data to be presented in a web browser separately from how the data will be presented. XForms technology, however, does not address some of the issues discussed above that can arise when using a web browser to access applications or data via the web.